import { constantRoutes, asyncRoutes } from '@/router'
const state = {
  routes: []
}
const mutations = {
  setRoutes(state, data) {
    // data 是筛选过后的动态路由
    // 加上原来的静态路由, 就等于最终应该显示的菜单
    state.routes = [...constantRoutes, ...data]
  }
}
const actions = {
  filterRoutes(store, data) {
    console.log('筛选逻辑')
    console.log('个人权限列表', data)
    console.log('动态路由列表', asyncRoutes)
    // 这里负责筛选
    // 标准是, 如果路由名称存在于个人权限数据中, 可以留下
    // 如果路由名称不存在个人权限数组中, 就没有权限不能访问
    // 需要两个数据
    // 1. 个人权限列表 调用时通过 data 传入
    // 2. 动态路由列表 import 即可
    // 开始过滤
    const routes = asyncRoutes.filter(item => data.indexOf(item.name) !== -1)
    console.log('筛选后的结果', routes)
    // 将筛选的结果,经过 Mutations 拼接菜单交给 state
    store.commit('setRoutes', routes)
    // 返回筛选结果, 供导航守卫重新添加路由
    return routes
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
